Printer driver system for remote printing

ABSTRACT

The present invention is concerned with providing a computer printer system which is particularly adapted for printing to a remote printer in a client-server environment. In the practice of the present invention, a universal printer driver is installed on the host server which creates a compressed, transmittable file that can be interpreted and printed by any printing device. This eliminates the need for a myriad of printer drivers being installed on the host server and increases speed and efficiency of print file processing by decreasing the need for bandwidth. The system results in faster, more convenient and more reliable printing to remote printers in a client-server arrangement.

FIELD OF THE INVENTION

The present invention generally relates to a printer driver system, andmore particularly, the invention relates to a printing process processedand executed on servers in the client-server computer environment.

BACKGROUND OF THE INVENTION

In the client-server environment, the server operating system is calledupon to handle communication interaction with a variety of client-basedapplications. The client operating system locates a server and requestsa connection with the server and the server allocates resources tohandle requests from the client. This can include, for example, a printrequest to a designated printer connected locally or to the client.

Examples of such clients include workstations, desktop computers,laptops, hand held devices and the like. Examples of printer devicesinclude laser printers, bubblejet printers, inkjet printers,multi-purpose machines which combine printing, faxing and/orphotocopying capabilities, and the like.

In some client-server systems, however, the client computer is a simplemachine that is implemented with less functionality than ageneral-purpose computer. For instance, the client might be implementedas a terminal, which typically provides just enough functionality toenable access to the server computer over a network. The terminal has nooperating system or “intelligence”; rather, the operating system andapplications reside at the server, and the processing takes place at theserver.

More recently, low cost computers known as “network computers” or “NCs”have been introduced as a means for providing access to a network.Network computers have a display, a keyboard, a network port, andlimited processing capabilities. Network computers can provide somelimited local processing, but are primarily reliant on the server formost processing. Presently available network computers are primarilyconfigured to run applications written in Java, a language introduced bySun Microsystems. Closely related to the NCs is another type of low costcomputer, known as “Net PCs”, which can run both Windows-based andJava-based applications, but which operate in a similar manner to an NC.

Various technologies, and in particular, a technology marketed under thename “MetaFrame” from Citrix Systems Inc., extend the typical Windows NTserver operating system to support multiple client-server windowingsessions for connected clients, where each session provides a windowingenvironment for the connected client.

With the MetaFrame technology, for example, a client can connect to theWindows NT server and begin a windowing session. To the user, it appearsas if the client is a standalone Window-enabled computer that is runningits own Windows-brand operating system. However, the session is actuallytaking place on the server computer, remote from the client, and theclient is merely running a local graphical user interface to provideentry to the session. In this regard, the MetaFrame technology isparticularly well suited for low intelligent client computers, such asterminals and network-centric computers, because the client need not becapable of running its own operating system. However, the MetaFrametechnology is also equally well suited for fully enabled clients.

A server operating system supports multiple client-server sessions andenables each client to work with applications hosted by the server andcreate and print work to local printers (connected to the server) orremote printers (connected to, for example, the client). It should benoted that an essential component of current client-server printerapplications is that the host server must be able to support each of thenumerous printers which might be selected. This is usually accomplishedby installing the relevant printer driver on the host server.

However, issues evolving from the installation of printer drivers on thehost server include the volume of printer devices on the market, thestability of the printer drivers for some devices, the reliability ofthe server after the installation of numerous printer drivers, andnaming conventions of drivers among different operating systems.

A common problem with, for example, the Citrix MetaFrame technology,therefore, is the ability to print to any remote printer device. Anotherproblem with Citrix MetaFrame technology is the bandwidth usage taken bythe server when processing a print job to a remote printer sincebandwidth and speed are also issues that the host server must deal withwhen processing remote print jobs.

To exemplify the problem, consider a common scenario. A user logs ontothe Windows NT server from a client computer at the user's home.Connected to the user's computer is a multi-purpose printer/fax machine.The user works on a document using a word-processing software hosted bythe server. The user then wants to print the work to the printer/faxmachine connected to the home computer. The print job is processed bythe server but it cannot be sent to the user's local printing devicebecause the device is not recognized or supported by the server'soperating system or because the printing job requires more bandwidththan is available to send the print job across the connection.

The server must also recognize the type of printer/fax machine and sendthe print job to it in a recognizable form. The bandwidth available tothe server-client must also be sufficient enough to allow for the speedytransfer of the file information.

A similar scenario would be a user that is connected to the host serverthrough a terminal.

It should be noted that printers have their own “language”. When work issent to a printer, the content of the document is transformed to aformat that a printer can recognize, interpret and print out. The mostcommon formats are formats developed by Hewlett Packard, Epson andPostScript. Conversion of the work to a printer format is generallyaccomplished by the use of a driver which driver is particular to anindividual machine and operating system.

This means that for each printing device and operating system, a drivermust be installed on the host server in order for it to process printjobs to that printing device. It also means that the file created by theserver and sent to the printer can vary in size depending on the type ofprinter. However, these printer files are typically quite large innature, and thus generally require significant amounts of bandwidth inorder to print at a reasonable speed. Also, due to their large size, thetransmission speed of transferring the printer file from the server tothe client's printer, can significantly affect the speed at which theprint job is completed.

Thus, in summary, a common problem in remote printing is that theprinter file is large and, accordingly, requires a large bandwidth totransfer the print job. A second problem is that the server must containthe printer driver files for all printers which may be connected to thecomputer systems of the remote user. A third problem is that the servermust remain stable and reliable when dealing with a wide variety ofdifferent printer drivers.

While existing systems have met with some success, there is a desire toimprove the printing system to better overcome these problems and tobetter focus on the needs of the user. In particular, there is a need toovercome these problems in order to reduce the bandwidth load, and toreduce the need for a large number of printer drivers to be stored onthe host server.

SUMMARY OF THE INVENTION

Accordingly, it is a object of the present invention to provide aprinter system which is able to reduce the number of printer driverswhich must be stored on the server in a client-server environment.

It is a further object of the present invention to provide a printersystem which is able to reduce the bandwidth necessary for transmissionof a printer file from a server to a remote client printer in aclient-server environment.

It is a further object of the present invention to provide a printersystem which is generally more stable, and thus more reliable, thancurrent printer systems in a client-server environment.

These and other objects are attained by providing a system wherein thehost server has a universal printer driver that creates a compressed,transmittable printer file which can be used to print to a printerconnected to the host server or the remote client printer.

Thus, the invention supports client-server printing by enabling a userto print to any printing device while connected to a host server withoutthe need of having that device's driver installed on the host-server andwithout having to consider the client device. Furthermore, this can beachieved whether the user is accessing the server by a computer, handheld device, terminal or the like.

Accordingly, the present invention provides a computer printing systemfor a client-server computer system, comprising a host server,optionally connected to one or more printers, and one or more remotelyconnected client computers, which are connected with one or moreprinters, wherein a universal printer driver is located on, or under thecontrol of the host server, which universal printer driver, on receiptof a print request from a client computer, converts a non-universalprint file to a compressed, transmittable file that is sent to, andwhich can be interpreted by a universal print file reader located on, aprinter server system, so that a universal print file is transmitted,under the control of the host server, to at least one of said printers.

The system of the present invention thus negates or minimizes the needfor a myriad of printer drivers being installed on the host server, andincreases speed and efficiency of the print job processing by decreasingthe need for bandwidth.

Preferably, the universal printer driver is installed on the hostserver, and a universal printer reader is installed on the clientcomputer. When a user requests that work be printed, the host serverprocesses the print request, creates a compressed, transmittable file,preferably sends the file to a printer server system, where it isinterpreted by a universal print file reader and thus converted to asuitable printer file, and subsequently sent to the selected printerwhere it is printed. Thus, the host server generates a “universal printfile” that can be interpreted by the universal print file reader.

A number of different universal printer drivers may be used to create avariety of compressed, transmittable files. These can include universalprinter drivers which create files of the type commonly used with thefile extensions of “tif” or “pdf”, for example. Most preferred, however,are files of the type with the “pdf” extension created, for example byproducts such as Adobe Acrobat which is a commonly available product.

These types of files created with a universal printer driver, can besent directly to the printer where they can be printed without anyfurther modification, other than interpretation by the universal printfile reader. This is in contrast to the situation where “pdf” or “tif”files (or more generally any universal print file) is printed from theInternet. In that case, the remote client computer is processing theinformation and print job. In the application of the present invention,the host server processes the information and print file on the remoteclient printer, with the client computer only acting to use theuniversal print file interpreter to generate the universal print file.

The host server and the client computer may be connected through avariety of means such as direct connections, wireless connections andthe like. Preferably, the host server and the client computer areconnected as part of a networked computer system. Most preferably, thenetworked computer system is a Wide Area Network (WAN), a Local AreaNetwork (LAN), an intranet or an Internet connection.

In a further aspect, the present invention also provides a method forprinting in a client-server computer printing system having a hostserver, optionally connected to one or more printers, and one or moreremotely connected client computers, which are connected with one ormore printers, comprising,

requesting a print file from a host server by a client computer, to aprinter server system,

translating the print file into a compressed, transmittable file using auniversal printer driver located on, or under the control of the hostserver,

transmitting the compressed transmittable file to said printer serversystem,

translating the compressed transmittable file to a universal print filesuitable for use by a printer connected to the printer server system byusing a universal print file reader located on said printer serversystem, and

transmitting said universal print file to at least one of said printersso that said print file is printed.

DETAILED DESCRIPTION OF THE INVENTION

As previously stated, a printer file is relatively large due to the factthat the content and the page format settings must be transmitted to theprinter in a printer language understood by the printer. A key functionof the universal printer driver is that it is able to compress theprinter file into a smaller file which can be transmitted over thenetwork connection (or Internet connections) more rapidly than theoriginal, larger printer file.

Although any level of compression is generally of some assistance inincreasing transmission speed and reducing bandwidth, it is preferredthat the universal printer driver compress the printer file to a filesize which is less than 95%, preferably 90%, and more preferably, 75% ofits original size. Even more preferably, the universal printer driverwill compress the printer file to a file size which is less than 50% ofits original size.

The universal printer driver is preferably a commonly available programbut may also be a proprietary program developed for this application.One commonly available program is available under the trade mark ofAdobe Acrobat. Through Adobe Acrobat, a universal printer driver and auniversal print file reader are available which can compress a printerfile into a “pdf” printer format file for transmission across thenetwork connection, and convert the “pdf” file into a file suitable forprinting. The universal print file reader is generally a related productto the universal printer driver.

It should be noted that traditional printer drivers are generallydependent on the operating system under which the computer is operating.Thus, situations can occur wherein, for example, a host server runningon Windows NT or Windows 2000 while the local remote client computer isrunning Windows 95 or 98, and the printer used on the client computeronly has printer drivers for Windows 95 or 98. In this situation, evenif the printer drivers are installed on the server, the server won'trecognize them or support them. In this case, it can be difficult tomanage to print to the remote client printer.

In contrast, a a universal printer driver is typically one in which thedriver is not dependent on the operating system, and can prepare aprinter file which can be transmitted to any number of differentoperating systems.

Further, the universal printer driver can create a file which can besent to a variety of machines such as computers running Windowsoperating systems, Apple computers, VAX computers, computers runningunder a UNIX operating system, thin-client configurations, Network PCs,NCs, PDAs and a variety of other client computer arrangements. Thus, theprint driver is universal in that it creates a print file which can beused by almost all commonly available computer makes, models oroperating systems.

The present invention is of use in any situation where a remote clientis connected to a client-server arrangement. This includes variousnetworked or Internet connections. Of most interest in the presentinvention however, is an application wherein the universal printerdriver is installed on a server running Citrix MetaFrame. Accordingly,the host server may be any one of a variety of machines capable ofacting as a server, but most preferably is a host server capable ofrunning Citrix MetaFrame.

The printer server system generally will comprise a local remotecomputer which will be directly connected to the printer. However, theprinter server system might also comprise a separate computerized systemfor converting the “pdf” file into a printer file and then sending itdirectly to the printer without passing through the local, remotecomputer.

Similarly, the printer file generated by the host server may beconverted to the compressed transmittable file in the host serverdirectly. However, the printer file may be sent to a separatecomputerized system for conversion, before the compressed transmittablefile is sent to the remote client computer.

The compressed transmittable file is normally sent directly to theprinter server system directly. However, in an alternative embodiment,the compressed transmittable file may be sent to an electronic mailsystem of the host server, and sent to the client as an e-mail file. Thee-mail file can then be printed as normal.

Other features of the present invention, as well as other objects andadvantages attendant thereto, are set forth in the following descriptionand the accompanying drawings in which like reference numerals depictlike elements.

BRIEF DESCRIPTION OF THE DRAWINGS

A preferred embodiment of the remote printer system of the presentinvention will now be described by reference to the following drawingswherein:

FIG. 1 is an illustration of a client-server computer system showingprinting devices connected to the client computer;

FIG. 2 is a flow chart of a print job being processed on a client-servercomputer system according to the prior art;

FIG. 3 is a flow chart of a print file being processed on aclient-server computer system according to the present invention;

FIG. 4 is a alternative arrangement for a client-server computer systemaccording to the present invention; and

FIG. 5 is a further alternative arrangement for a client-server computersystem according to the present invention.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

FIG. 1 is an illustration of a client-server computer system, generallydepicted as 10, showing printing devices connected to the clientcomputer. In particular, host server 12 is shown having three connectionpoints, namely via a local area network (LAN) 14, via a wide areanetwork (WAN) 15, or via the Internet 16. Connected to LAN network 14are a plurality of client computers, of which two are shown, namely adesktop PC 20, a laptop PC 30. Each client computer has an attachedprinter designated as 21 and 31.

Two “thin client” access terminals, generally designated as 42, and aprint server 40, are shown as being connected to WAN network 15.Connected to print server 40 are two printers generally designated as41.

Connected to Internet 16 are a plurality of client computers, of whichtwo are shown, namely a handheld PC 50 (such as a PDA (personal digitalassistant) including those sold under the trade name PalmPilot, ore-mail tools such as BlackBerry, or other devices running under WindowsCE) and a remote client PC 60. Connected to the client computer systemsare printers 51 and 61.

Although variations are possible, this represents a standardconfiguration for a client-server computer arrangement, and inparticular, for a client-server computer arrangement wherein the hostserver is running a program such as Citrix MetaFrame wherein the remotePC, or the like, is used merely as a terminal to access and use variousprograms on the host server, and where the host server is used forprocessing various functions in place of the remote PC.

In FIG. 2, a flow chart of a print job being processed on aclient-server computer system of FIG. 1, according to the prior art, isshown. In this example, the user of desktop PC 20 wishes to print adocument to PC 21, the flow chart of the actions taken would be as shownin FIG. 2. Initially, the user makes a request for a file to be printedand requests that the file be printed to printer 21. The file is a 15page document with text and graphics with a size of 142 KB. Server 12receives the print request, identifies printer 21 and locates thecorrect driver for printer 21. If the server fails to find the correctdriver for the printer, then the print job is abandoned. Only if thecorrect driver is found, is the print job continued. Using the correctdriver, host server 12 prepares a printer file which is then sent to PC20 over the network connection 14. The printer file for the 15 pagedocument is now 6287 KB in size, and thus creates a large file to betransferred to PC 20. The printer file is then forwarded to printer 21from PC 20 where it is printed.

In this example, a relatively large printer file is prepared assumingthat printer 21 is a printer which is supported by host server 12, andassuming that host server 12 has the correct driver for printer 21. Ifthe printer is not supported and/or the host server does not have thecorrect driver, then the print request will fail.

In FIG. 3 a similar flow chart is shown of a print file being processedon a client-server computer system according to the present invention.Using the same desktop computer 20, the user makes a request for a fileto be printed. Host server 12 receives the print request and uses auniversal printer driver to prepare a universal print file fortransmission to PC 20 over network connection 14. In this case, theuniversal printer driver creates a compressed, transmittable printerfile having a “pdf” format. The universal print file for the same 15page document is now 68 KB in size, and takes far less time to betransferred to PC 20. Once the universal print file is received, theuser at PC 20 can optionally preview the document and can select thedesired printer. The universal printer file reader will then interpretthe universal print file, and PC 20 will then forward the universalprint file to printer 21 where it is printed.

As is seen, using this approach results in a much smaller file beingtransferred over network 14, so that the time for transfer is reduced.Also, the host server 12 no longer needs to identify or support printer21, and does not even need to know which type of printer is to beselected. Host server 12 now merely uses the universal printer driver tocreate a universal print file. Accordingly, the number of printerdrivers stored on the host server 12 is greatly reduced. The remote PC20 is now used to merely forward the universal print file to the printer21.

Similar flow charts would be used for any of the remote PC systems shownin FIG. 1, namely PCs 30, 40, 50 and 60, whether connected through theLAN 14, the WAN 15 or the Internet 16, when printing on printers 31, 41,51, and 61 respectively.

In FIG. 4 an alternative arrangement for a client-server computer systemaccording to the present invention is shown. In FIG. 4, a host server112 is connected via a LAN 114 to a number of thin client terminals,generally designated as 142. Connected to LAN 114 is a printer server140, to which is connected printer 141. Also connected to LAN 114 is aWAN 118 to which is connected a series of thin client terminals, ofwhich two are shown, and generally designated as 132. Also connected toWAN 118 is a printer server 130 to which is connected printer 131.

In this embodiment, when a user on a thin client terminal (either 132 or142) makes a print request, the request is sent to host server 112. Hostserver 112 uses a universal printer driver to prepare a universal printfile. Depending on the printer selected, the universal print file isforwarded to either printer server 130 or printer server 140, from whichthe universal print file is forwarded to printer 131 or 141 where thefile is printed.

Again, in this embodiment, a smaller, compressed universal print file istransmitted over the LAN or WAN rather than the larger printer file.Also, the host server does not need to support the remote printers orhave the printer drivers for all of the remote printers which might beused.

Also, it should be noted that it is not necessary for the user'scomputer to be attached to dedicated printer PC 140. This can be ofconvenience if the user's computer is a laptop or a hand held PDA, forexample, and thus might be removed from its normal printer connection.Additionally, this would allow a wireless connection to the Internet tobe used from a mobile PC or PDA which would still allow for printing ata remote printer.

In FIG. 5 a further alternative arrangement for a client-server computersystem according to the present invention is shown. This arrangementincludes an e-mail server 219 connected to host server 212 through anetwork 214.

In this embodiment, a print request to the host server 212 from a remoteuser on PC 220 is received through network 214. In this example,however, the “print job” is to be sent as an e-mail attachment. Hostserver 212 uses a universal printer driver to create a universal printfile with a “pdf” format which is sent through network 214 to e-mailserver 219. E-mail server 219 creates an e-mail message 217 which issent via the Internet 216 to PC 220, where it is received and stored.The universal print file can then be printed at any convenient time onprinter 221.

In this fashion, a standard e-mail message can be sent to any partyselected by the user, and not just by the user of PC 220, for them toprint a universally accepted file on their own printers.

Thus, it is apparent that there has been provided, in accordance withthe present invention, a printer driver system which fully satisfies themeans, objects, and advantages set forth hereinbefore. Therefore, havingdescribed specific embodiments of the present invention, it will beunderstood that alternatives, modifications and variations thereof maybe suggested to those skilled in the art, and that it is intended thatthe present specification embrace all such alternatives, modificationsand variations as fall within the scope of the appended claims.

Additionally, for clarity and unless otherwise stated, the word“comprise” and variations of the word such as “comprising” and“comprises”, when used in the description and claims of the presentspecification, is not intended to exclude other additives, components,integers or steps.

1. A server for connection to a client via a network; said client operable to transmit user-input to said server over said network and to receive user-output from said server over said network; said server comprising: a network interface for connection to said network; a processor coupled to said interface; said processor operable to remotely host execution of an application for said client; said application for receiving said user-input for said client from said network and for generating said user-output for transmission to said client over said network; said processor further operable to generate a universal printer file from said application based on a request for a file to be printed that is embedded in said user-input; said processor further operable to transmit said universal printer file over said network.
 2. The server of claim 1 wherein said universal printer file is generated according to the Adobe Acrobat portable document format (“PDF”).
 3. The server of claim 1 wherein said server and said client run cooperating versions of Citrix MetaFrame; and wherein said user-input, said user-output and said universal printer file are carried over said network via Citrix MetaFrame.
 4. The server of claim 1 wherein said network includes at least one of a local area network; a wide area network and the Internet.
 5. The server of claim 1 wherein said universal printer file is carried over said network to said client via email.
 6. The server of claim 1 wherein said universal printer file is transmitted to said client for printing at a printer locally connected to said client; said client operable to interpret said universal printer file for said printer via a universal print file reader in cooperation wit a local printer driver complementary to said printer.
 7. The server of claim 6 wherein said universal printer file is generated according to the Adobe Acrobat portable document format (“PDF”).
 8. The server of claim 7 wherein said universal print file reader is Adobe Acrobat Reader.
 9. A client-server computer system comprising: a client operable to transmit user-input over a network and to receive user-output over said network; a server connected to said client via said network; said server operable to remotely host execution of an application for said client; said application for receiving said user-input from said network and for generating said user-output for transmission to said client over said network; said server further operable to generate a universal printer file from said application based on a request for a file to be printed that is embedded in said user-input and to transmit said universal printer file to said client over said network; said client further operable to receive said universal printer file; said client including a universal print file reader operable to interpret said universal printer file into a local printer file in cooperation with a local printer driver; and a printer complementary to said local printer driver for connection to said client, said printer operable to print a document from said local printer file.
 10. The system of claim 9 wherein said universal printer file is generated according to the Adobe Acrobat portable document format (“PDF”).
 11. The system of claim 9 wherein said server and said client run cooperating versions of Citrix MetaFrame; and said user-input; said user-output and said universal printer file are carried over said network via Citrix MetaFrame.
 12. The system of claim 9 wherein said network includes at least one of a local area network; a wide area network and the Internet.
 13. The system of claim 9 wherein said universal printer file is carried over said network to said client via email.
 14. A method of printing comprising: receiving at a server a request for a file to be printed that is embedded in a user-input from a client remotely connected to said server via a network; processing said print request at said server by corresponding said print request to an application hosted on said server in behalf of said client; locating a universal printer driver on said server; creating a universal printer from said application using said universal printer driver; and, sending said universal printer file to said client over said network.
 15. The method of claim 14 wherein said universal printer file is generated according to the Adobe Acrobat portable document format (“PDF”).
 16. The method of claim 14 wherein said server and said client run cooperating versions of Citrix MetaFrame; and said print request and said universal printer file are carried over said network via Citrix MetaFrame.
 17. The method of claim 14 wherein said network includes at least one of a local area network; a wide area network and the Internet.
 18. The method of claim 14 wherein said universal printer file is sent from said server over said network to said client via email.
 19. The method of claim 14 wherein said sending step includes transmitting said universal printer file to said client and said method further includes the steps of: receiving said universal printer file at said client; interpreting said universal printer file for a printer locally attached to said client; printing said interpreted universal printer file at a printer locally connected to said client.
 20. The method of claim 14 wherein said universal printer file is generated according to the Adobe Acrobat portable document format (“PDF”). 